readme.txt for EMM386/HIMEM *********************************************************** *THIS IS FREE SOFTWARE WITH ABSOLUTELY NO WARRANTY * *WHATSOEVER, WHICH YOU MAY USE COMPLETELY AT YOUR OWN RISK* * * *IF IT WORKS FOR YOU - FINE. * * * *IF IT DOESN'T - STOP USING, BUT DON'T COMPLAIN. * * * *IF YOU SEND BUG REPORT'S, SEND DETAILS * *I WONT'T EVEN LOOK AT BUG REPORTS LIKE * * 'your EMM386 makes problems. can you help?' * * * * FIXES WELCOME * *********************************************************** EMM386/HIMEM is released under the GNU GENERAL PUBLIC LICENSE, see the file DOCS\LICENSE.TXT for the full text. In addition, the original authors copyrights must remain intact; ******************************************************************** ****** this release requires FreeDOS kernel version >= ke2026 ****** ******************************************************************** What it shall do: HIMEM.EXE replaces MSDOS HIMEM.SYS, EMM386.EXE replaces MSDOS EMM386.EXE **************** Why use EMM386 **************** if you need Upper memory and your PC is not recognized by UMBPCI if you want enhanced (EMS) memory **************** Why NOT use EMM386 *************** if you want to run protected mode (VCPI/DPMI) programs, you can't run EMM386. to be done - much later. Programs doing a LOT of IN/OUT may run slower in a protected mode environment like EMM386 ****** How to use it ******************************* change CONFIG.SYS like files=20 buffers=30 lastdrive=z break=off >>> dos=high,umb >>> device=HIMEM.EXE >>> device=EMM386.exe NOEMS >>> shellHIGH=c:\command.com /p /e:512 both HIMEM and EMM386 require PC's >= 80386 to run. ******************************************************* COMMANDLINE switches implemented use EMM386.EXE from commandline - it will tell you: NOEMS - disable EMS completely (default=enable) VDS - enable VDS current status is experimental FRAME=D000 - select wanted pageframe(default=highest possible) EMM=20000 - 20000 KB EMS memory wanted(default=8MB) X=D000-D800 - no make memory mapped devices work I=A000-AFFF - IF YOU REALLY KNOW WHAT YOU DO (VGA graphics) I=B000-B7FF - IF YOU REALLY KNOW WHAT YOU DO (Hercules) I=BC00-BFFF - IF YOU REALLY KNOW WHAT YOU DO (VGA upper text) see WARNING below /VERBOSE - give some more details about found devices, mapped UMB's,...l EMM386 allocates fixed amount of whatsneeded (from HIMEM.EXE) needed internally ca. 96 KB for pagetables, high code,... 64K for DMA handling ( no idea if that works though) additionally enough memory to map UMB's (16..160KB) + tries to allocate the wanted EMS memory (default=8MB) more to be used as EMS memory WARNING: in theory, its possible to use upper memory at A000..AFFF (VGA graphics) and B000..B7FF (hercules adapter) however some programs (or the BIOS INT 10 functions) seem to write _sometimes_ into this area, so operating with this memory area IS HIGHLY DISRECOMMENDED to use A000-B7FF use it at your own risk only ********************* known BUGS *************** EMM386 seems to run stable. VDS support is only experimental no VCPI/DPMS/DOS32 functionality none at all - not even thought about that ********************* troubleshooting *************** if you have problems add /VERBOSE to EMM386 commandline, will give some details about XMS memory, UMB memory, blocks mapped,... make sure you have kernel >=2026 1'st) start with following CONFIG.SYS !files=20 !anydos=1 !break=off !buffers=30 !screen=0x12 !lastdrive=z !stacks=0,0 !dos=high,umb !shellhigh=a:\command.com /P /E:512 /MSG DEVICE=\freedos\himem.exe DEVICE=\freedos\emm386.exe NOEMS /VERBOSE rem - if you want CD: rem DEVICE=\freedos\CDROM.SYS /D:MSCD000 2'nd) add one driver after the other, until you find the one, that causes trouble. try to load it high (deviceHIGH=), then to load low (device=), then try to load BEFORE EMM386. please report any *positive* results, so I can add them here. 3'rd) you are out of luck. sorry. ********************* known incompatibilities *************** FDXMS08 uses priviledged instructions and is not supported FDXMS09 has a bug and is not supported please use HIMEM.EXE, which is 400 byte smaller as well. *********************************************************** tom ehlert (tom.ehlert@ginko.de) 2002-04-03